<?php namespace app\admin\controller;

use houdunwang\request\Request;
use system\model\Category as CategoryModel;
/*
 * 栏目管理控制器
 */
class Category extends Common
{
	//通过中间件局部实现局部可控性
	public function __construct()
	{
		$this->auth();
	}

	//栏目首页
    public function index(CategoryModel $category){
    //此处书写代码...
		$cateData =$category->getAllCate();
		return view('index',compact('cateData'));
    }

    /*
     * 栏目添加
     */
    public function post(CategoryModel $category)
	{
		/*
		 * 接收参数
		 * 根据有没有get参数来判断是编辑还是添加
		 */
		$cate_id = Request::get('cate_id',0,'intval');
		if(IS_POST)
		{
			//有$cate_id有值，则证明是编辑
			if($cate_id)
			{
				$category = CategoryModel::find($cate_id);
			}
			//添加
			$category->save(Request::post());
			//message('操作成功','index');
			go('index');
		}
		//处理旧数据
		if($cate_id)
		{

			//编辑功能
			$oldData = CategoryModel::find($cate_id);
			View::with('oldData',$oldData);
			//所属分类数据，不能选择自己+自己所有子集
			$cateData = $category->getSonCateData($cate_id);

		}
		else
		{
			//获取栏目所有数据
			//数据要放在添加页面中的所属栏目上
			$cateData = $category->getAllCate();
		}
		View::with('cateData',$cateData);
		return view();
	}

	/*
	 * 栏目删除
	 */
	public function del(CategoryModel $category)
	{
		$cate_id = Request::get('cate_id');
		//执行删除
		if($category->del($cate_id))
		{
			//删除成功的提示
			return $this->setRedirect('index')->success('处理成功');
		}else{
			//删除失败的提示
			return $this->error($category->getError()[0]);
		}
	}
}
